home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / FWPxyIte.cpp < prev    next >
Encoding:
Text File  |  1996-09-17  |  4.2 KB  |  136 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWPxyIte.cpp
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWFrameW.hpp"
  11.  
  12. #ifndef FWPXYITE_H
  13. #include "FWPxyIte.h"
  14. #endif
  15.  
  16. #ifndef FWPXYFRM_H
  17. #include "FWPxyFrm.h"
  18. #endif
  19.  
  20. //========================================================================================
  21. //    Runtime information
  22. //========================================================================================
  23.  
  24. #ifdef FW_BUILD_MAC
  25. #pragma segment framework
  26. #endif
  27.  
  28. FW_DEFINE_AUTO(FW_CProxyEmbeddedFrameIterator)
  29. FW_DEFINE_AUTO(FW_CProxyProxyFrameIterator)
  30.  
  31. //========================================================================================
  32. //    FW_CProxyEmbeddedFrameIterator
  33. //========================================================================================
  34.  
  35. //----------------------------------------------------------------------------------------
  36. //    FW_CProxyEmbeddedFrameIterator::FW_CProxyEmbeddedFrameIterator
  37. //----------------------------------------------------------------------------------------
  38.  
  39. FW_CProxyEmbeddedFrameIterator::FW_CProxyEmbeddedFrameIterator(Environment* ev, const FW_MProxy* proxy) :
  40.     fIterator(proxy),
  41.     fCurrentFrame(NULL)
  42. {
  43. FW_UNUSED(ev);
  44.     FW_END_CONSTRUCTOR
  45. }
  46.  
  47. //----------------------------------------------------------------------------------------
  48. //    FW_CProxyEmbeddedFrameIterator::~FW_CProxyEmbeddedFrameIterator
  49. //----------------------------------------------------------------------------------------
  50.  
  51. FW_CProxyEmbeddedFrameIterator::~FW_CProxyEmbeddedFrameIterator()
  52. {
  53.     FW_START_DESTRUCTOR
  54. }
  55.  
  56. //----------------------------------------------------------------------------------------
  57. //    FW_CProxyEmbeddedFrameIterator::First
  58. //----------------------------------------------------------------------------------------
  59.  
  60. ODFrame* FW_CProxyEmbeddedFrameIterator::First(Environment* ev)
  61. {
  62.     return PrivNext(ev, fIterator.First());
  63. }
  64.  
  65. //----------------------------------------------------------------------------------------
  66. //    FW_CProxyEmbeddedFrameIterator::Next
  67. //----------------------------------------------------------------------------------------
  68.  
  69. ODFrame* FW_CProxyEmbeddedFrameIterator::Next(Environment* ev)
  70. {
  71.     return PrivNext(ev, fIterator.Next());
  72. }
  73.  
  74. //----------------------------------------------------------------------------------------
  75. //    FW_CProxyEmbeddedFrameIterator::Last
  76. //----------------------------------------------------------------------------------------
  77.  
  78. ODFrame* FW_CProxyEmbeddedFrameIterator::Last(Environment* ev)
  79. {
  80.     return PrivPrevious(ev, fIterator.Last());
  81. }
  82.  
  83. //----------------------------------------------------------------------------------------
  84. //    FW_CProxyEmbeddedFrameIterator::Previous
  85. //----------------------------------------------------------------------------------------
  86.  
  87. ODFrame* FW_CProxyEmbeddedFrameIterator::Previous(Environment* ev)
  88. {
  89.     return PrivPrevious(ev, fIterator.Previous());
  90. }
  91.  
  92. //----------------------------------------------------------------------------------------
  93. //    FW_CProxyEmbeddedFrameIterator::PrivNext
  94. //----------------------------------------------------------------------------------------
  95.  
  96. ODFrame* FW_CProxyEmbeddedFrameIterator::PrivNext(Environment* ev, FW_CProxyFrame* proxyFrame)
  97. {
  98.     fCurrentFrame = NULL;
  99.     
  100.     while (proxyFrame != NULL)
  101.     {
  102.         if (proxyFrame->IsFrameInMemory(ev))
  103.         {
  104.             fCurrentFrame = proxyFrame->GetFrame(ev);
  105.             break;
  106.         }
  107.         
  108.         proxyFrame = fIterator.Next();
  109.     }
  110.     
  111.     return fCurrentFrame;
  112. }
  113.  
  114. //----------------------------------------------------------------------------------------
  115. //    FW_CProxyEmbeddedFrameIterator::PrivPrevious
  116. //----------------------------------------------------------------------------------------
  117.  
  118. ODFrame* FW_CProxyEmbeddedFrameIterator::PrivPrevious(Environment* ev, FW_CProxyFrame* proxyFrame)
  119. {
  120.     fCurrentFrame = NULL;
  121.     
  122.     while (proxyFrame != NULL)
  123.     {
  124.         if (proxyFrame->IsFrameInMemory(ev))
  125.         {
  126.             fCurrentFrame = proxyFrame->GetFrame(ev);
  127.             break;
  128.         }
  129.         
  130.         proxyFrame = fIterator.Previous();
  131.     }
  132.     
  133.     return fCurrentFrame;
  134. }
  135.  
  136.